package com.ruoyi.business.domain;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.Pattern;

/**
 * 员工对象 employee
 *
 * @author ruoyi
 * @date 2023-06-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("employee")
public class Employee extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * id
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 工号
     */
    @Excel(name = "工号")
    private String jobNumber;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String fullName;
    /**
     * 部门id
     */
    private String deptid;
    /**
     * 部门
     */
    @Excel(name = "部门")
    private String department;

    /**
     * 岗位
     */
    @Excel(name = "岗位")
    private String position;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String gender;

    /**
     * 民族
     */
    @Excel(name = "民族")
    private String ethnicity;

    /**
     * 身份证号码
     */
    @Excel(name = "身份证号码")
    private String idNumber;

    /**
     * 身份证家庭地址
     */
    @Excel(name = "身份证家庭地址")
    private String homeAddress;

    /**
     * 实际居住地
     */
    @Excel(name = "实际居住地")
    private String residentialAddress;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String contactNumber;

    /**
     * 紧急联系人
     */
    @Excel(name = "紧急联系人")
    private String emergencyContactPerson;

    /**
     * 紧急联系电话
     */
    @Excel(name = "紧急联系电话")
    private String emergencyContactNumber;

    /**
     * 学历
     */
    @Excel(name = "学历")
    private String education;

    /**
     * 专业
     */
    @Excel(name = "专业")
    private String major;

    /**
     * 技术职称
     */
    @Excel(name = "技术职称")
    private String technicalTitle;

    /**
     * 入职时间
     */
    @Excel(name = "入职时间")
    @DateTimeFormat("yyyy-MM-dd")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date entryDate;

    /**
     * 离职时间
     */
    @Excel(name = "离职时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date departureDate;

    /**
     * 离职情况
     */
    @Excel(name = "离职情况")
    private String departureStatus;

    /**
     * 离职原因
     */
    @Excel(name = "离职原因")
    private String departureReason;

    /**
     * 是否包吃
     */
    @Excel(name = "是否包吃")
    private String freeMeal;

    /**
     * 是否缴纳农村医疗保险
     */
    @Excel(name = "是否缴纳农村医疗保险")
    private String ruralMedicalInsurance;

    /**
     * 太平洋保险
     */
    @Excel(name = "太平洋保险")
    private String insurancePacific;

    /**
     * 中国人保保险
     */
    @Excel(name = "中国人保保险")
    private String insuranceCpic;

    /**
     * 中国人寿保险
     */
    @Excel(name = "中国人寿保险")
    private String insuranceChinalife;

    /**
     * 五险
     */
    @Excel(name = "五险")
    private String socialInsurance;

    /**
     * 参保时间
     */
    @Excel(name = "参保时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date insuranceStartDate;

    /**
     * 退保时间
     */
    @Excel(name = "退保时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date insuranceEndDate;

    /**
     * 是否签订放弃五险承诺书
     */
    @Excel(name = "是否签订放弃五险承诺书")
    private String waiveSocialInsurance;

    /**
     * 公积金缴纳时间
     */
    @Excel(name = "公积金缴纳时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date housingFundStartDate;

    /**
     * 职务层级
     */
    @Excel(name = "职务层级")
    private String positionLevel;

    /**
     * 职级
     */
    @Excel(name = "职级")
    private String employeeRank;

    /**
     * 职级工资
     */
    @Excel(name = "职级工资")
    private BigDecimal rankSalary;

    /**
     * 绩效档位
     */
    @Excel(name = "绩效档位")
    private String performanceLevel;

    /**
     * 绩效金额
     */
    @Excel(name = "绩效金额")
    private BigDecimal performanceAmount;

    /**
     * 月押金额
     */
    @Excel(name = "月押金额")
    private BigDecimal monthlyRent;

    /**
     * 技能工资
     */
    @Excel(name = "技能工资")
    private BigDecimal skillSalary;

    /**
     * 个税补贴
     */
    @Excel(name = "个税补贴")
    private BigDecimal taxSubsidy;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 首次签订到期时间
     */
    @Excel(name = "首次签订到期时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date firstContractExpiryDate;

    /**
     * 二次签订到期时间
     */
    @Excel(name = "二次签订到期时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date secondContractExpiryDate;

    /**
     * 三次签订到期时间
     */
    @Excel(name = "三次签订到期时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date thirdContractExpiryDate;

    /**
     * 四次签订到期时间
     */
    @Excel(name = "四次签订到期时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date fourthContractExpiryDate;

    /**
     * 五次签订到期时间
     */
    @Excel(name = "五次签订到期时间")
    @DateTimeFormat("yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date fifthContractExpiryDate;

    /**
     * 合同签订情况备注
     */
    @Excel(name = "合同续签备注")
    private String contractRemarks;

    /**
     * 年龄
     */
    @Excel(name = "年龄")
    private Long age;

    /**
     * 是否住宿
     */
    @Excel(name = "是否住宿")
    private String accommodation;

    /**
     * 房间号
     */
    private String roomNumber;

    /**
     * 是否外包人员
     */
    @Excel(name = "是否外包人员")
    private String outsource;
    /**
     * 删除标志（0代表在职，1，离职 2代表删除)
     */
    @Excel(name = "人员状态")
    private String delFlag;

    /**
     * pdfurl
     */
    private String pdfurl;
    /**
     * 岗位变动情况
     */
    @Excel(name = "岗位变动情况")
    private String jobchange;
    /**
     * 二次入职情况
     */
    @Excel(name = "二次入职情况")
    private String secondemployment;
    /**
     * 是否是福建籍管理员
     */
    @Excel(name = "福建籍管理员")
    private String fujianmanage;
    /**
     * 犯罪记录
     */
    @Excel(name = "无犯罪记录证明")
    private String crime;
    /**
     * 头像地址
     */
    private String img;

    /**
     * 床位详细信息
     */
    @TableField(exist = false)
    private String beddetail;
    /**
     * 提交办理住宿的标记
     */
    @Excel(name = "申请状态")
    private String allocated;
}
